/**
 * 基本信息编辑页面
 */
import { useEffect, useState } from 'react';
import { antiShake, store, updateTool, uuid } from '@/components';
import Forms from '@/components/Form/index.jsx';
import styles from '../index.less';
import { Button, Input, message } from 'antd';
const _options = [
  {
    label: '您的姓名是',
    prop: 'name',
    mappingName: '姓名', //映射到简历上的名字
    type: 'Input',
    mustType: true,
  },
  {
    label: '您的性别是',
    prop: 'sex',
    mappingName: '性别',
    type: 'Select',
    attrs: {
      options: [
        {
          label: '男',
          value: '男',
        },
        {
          label: '女',
          value: '女',
        },
        {
          label: '不填',
          value: 'notFilledIn',
        },
      ],
    },
  },
  {
    label: '您的年龄是',
    prop: 'age',
    mappingName: '年龄',
    attrs: {
      addonAfter: '岁',
    },
    type: 'Input',
  },
  {
    label: '工作年限',
    prop: 'years',
    mappingName: '工作年限',
    type: 'Select',
    attrs: {
      options: [
        {
          label: '不填',
          value: 'notFilledIn',
        },
        {
          label: '应届生',
          value: '应届生',
        },
        {
          label: '1年经验',
          value: '1年经验',
        },
        {
          label: '2年经验',
          value: '2年经验',
        },
        {
          label: '3年经验',
          value: '3年经验',
        },
        {
          label: '4年经验',
          value: '4年经验',
        },
        {
          label: '5年经验',
          value: '5年经验',
        },
        {
          label: '6年经验',
          value: '6年经验',
        },
        {
          label: '7年经验',
          value: '7年经验',
        },
        {
          label: '8年经验',
          value: '8年经验',
        },
        {
          label: '9年经验',
          value: '9年经验',
        },
        {
          label: '10年经验',
          value: '10年经验',
        },
        {
          label: '15年经验',
          value: '15年经验',
        },
        {
          label: '15年以上经验',
          value: '15年以上经验',
        },
      ],
    },
  },
  {
    label: '联系电话',
    prop: 'phone',
    mappingName: '电话',
    type: 'Input',
    mustType: true,
  },
  {
    label: '求职岗位',
    prop: 'post',
    mappingName: '求职岗位',
    type: 'Input',
  },
  {
    label: '意向城市',
    prop: 'intendedCities',
    mappingName: '意向城市',
    type: 'Input',
  },
  {
    label: '期望薪资',
    prop: 'salary',
    mappingName: '期望薪资',
    type: 'Input',
  },
  {
    label: '入职时间',
    prop: 'dateOfEmployment',
    mappingName: '入职时间',
    type: 'Select',
    attrs: {
      options: [
        {
          label: '不填',
          value: 'notFilledIn',
        },
        {
          label: '随时到岗',
          value: '随时到岗',
        },
        {
          label: '一周内到岗',
          value: '一周内到岗',
        },
        {
          label: '月内到岗',
          value: '月内到岗',
        },
        {
          label: '另行商议',
          value: '另行商议',
        },
      ],
    },
  },
  {
    label: '联系邮箱',
    prop: 'email',
    mappingName: '邮箱',
    type: 'Input',
  },
  {
    label: '婚姻状况',
    prop: 'marriageStatus',
    mappingName: '婚姻状况',
    type: 'Select',
    attrs: {
      options: [
        {
          label: '不填',
          value: 'notFilledIn',
        },
        {
          label: '已婚',
          value: '已婚',
        },
        {
          label: '未婚',
          value: '未婚',
        },
        {
          label: '离异',
          value: '离异',
        },
        {
          label: '已婚已育',
          value: '已婚已育',
        },
      ],
    },
  },
  {
    label: '身高',
    prop: 'height',
    mappingName: '身高',
    type: 'Input',
    attrs: {
      addonAfter: 'CM',
    },
  },
  {
    label: '体重',
    prop: 'weight',
    mappingName: '体重',
    type: 'Input',
    attrs: {
      addonAfter: 'KG',
    },
  },
  {
    label: '民族',
    prop: 'nation',
    mappingName: '民族',
    type: 'Input',
  },
  {
    label: '籍贯',
    prop: 'hometown',
    mappingName: '籍贯',
    type: 'Input',
  },
  {
    label: '政治面貌',
    prop: 'politicalLandscape',
    mappingName: '政治面貌',
    type: 'Select',
    attrs: {
      options: [
        {
          lable: '中共党员',
          value: '中共党员',
        },
        {
          lable: '中共预备党员',
          value: '中共预备党员',
        },
        {
          lable: '共青团员',
          value: '共青团员',
        },
        {
          lable: '群众',
          value: '群众',
        },
      ],
    },
  },
];
import API from '@/api/index';
const App = () => {
  const [options, setOptions] = useState([..._options]);
  const [config, setConfig] = useState({ title: '基本信息11233333' });
  const [name, setName] = useState('');

  const add = () => {
    if (!name) return message.warning('请填写自定义信息名称');
    if (name.length > 7) return message.warning('请精简到7个字以内');
    const _option = [...options];
    _option.push({
      label: name,
      prop: 'ADD' + uuid(),
      mappingName: name, //映射到简历上的名字
      type: 'Input',
      delete: true,
    });
    setOptions(_option);
    setName('');
  };
  const formChange = (val) => {
    const basic = options.map((ele) => {
      return {
        label: ele.mappingName,
        children:
          ele.attrs?.addonAfter && val[ele.prop]
            ? val[ele.prop] + ele.attrs?.addonAfter
            : val[ele.prop],
        mustType: ele.mustType,
        prop: ele.prop,
      };
    });
    store.dispatch('BASIC', {
      data: basic,
      config: config,
    });
    // console.log(options);
    // console.log(basic);
    API.saveModuleApi({
      config: JSON.stringify(config),
      type: 'basic',
      data: JSON.stringify(basic),
      isShow: true,
      resumeId: 1,
      id: 8,
    }).then((res) => {
      console.log(res, 'resss');
    });
    updateTool.updated('content');
  };
  useEffect(() => {
    store.dispatch('BASIC', {
      data: [
        { label: '姓名', mustType: true },
        { label: '电话', mustType: true },
      ],
      config: config,
    });
    updateTool.updated('content');
  }, []);
  const delfun = (v) => {
    setOptions(options.filter((ele) => ele.prop !== v.prop));
  };
  return (
    <div className={styles.basicInformation}>
      <Forms options={options} onChange={formChange} delFun={delfun} />
      <section className={styles.addDiy}>
        <Input
          className={styles.iptwidth}
          placeholder="信息名称,例如:姓名"
          value={name}
          onChange={(e) => setName(e.target.value)}
        />
        <Button type="primary" onClick={add}>
          添加自定义信息
        </Button>
      </section>
    </div>
  );
};
export default App;
